home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 …ember: Reference Library / Dev.CD Dec 98 RL1.toast / Technical Documentation / Misc. Standards / MacOS Text Encodings / DEVANAGA.TXT < prev    next >
Encoding:
Text File  |  1998-02-06  |  14.5 KB  |  397 lines  |  [TEXT/MPS ]

  1. #=======================================================================
  2. #   FTP file name:  DEVANAGA.TXT
  3. #
  4. #   Contents:       Map (external version) from Mac OS Devanagari
  5. #                   encoding to Unicode 2.0
  6. #
  7. #   Copyright:      (c) 1995-1998 by Apple Computer, Inc., all rights
  8. #                   reserved.
  9. #
  10. #   Contacts:       Peter Edberg <pedberg@apple.com>
  11. #                   Julio Gonzalez <juliog@apple.com>
  12. #                   John Jenkins <jenkins@apple.com>
  13. #
  14. #   Changes:
  15. #
  16. #       n04  1998-Feb-05    First version; matches internal utom<9>,
  17. #                           ufrm<15>.
  18. #
  19. # Standard header:
  20. # ----------------
  21. #
  22. #   Apple, the Apple logo, and Macintosh are trademarks of Apple
  23. #   Computer, Inc., registered in the United States and other countries.
  24. #   Unicode is a trademark of Unicode Inc. For the sake of brevity,
  25. #   throughout this document, "Macintosh" can be used to refer to
  26. #   Macintosh computers and "Unicode" can be used to refer to the
  27. #   Unicode standard.
  28. #
  29. #   Apple makes no warranty or representation, either express or
  30. #   implied, with respect to these tables, their quality, accuracy, or
  31. #   fitness for a particular purpose. In no event will Apple be liable
  32. #   for direct, indirect, special, incidental, or consequential damages 
  33. #   resulting from any defect or inaccuracy in this document or the
  34. #   accompanying tables.
  35. #
  36. #   These mapping tables and character lists are subject to change.
  37. #   The latest tables should be available from the following:
  38. #
  39. #   <ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
  40. #   <ftp://dev.apple.com/devworld/Technical_Documentation/Misc._Standards/>
  41. #
  42. #   For general information about Mac OS encodings and these mapping
  43. #   tables, see the file "README.TXT".
  44. #
  45. # Format:
  46. # -------
  47. #
  48. #   Three tab-separated columns;
  49. #   '#' begins a comment which continues to the end of the line.
  50. #     Column #1 is the Mac OS Devanagari code or code sequence
  51. #       (in hex as 0xNN or 0xNN+0xNN)
  52. #     Column #2 is the corresponding Unicode or Unicode sequence
  53. #       (in hex as 0xNNNN or 0xNNNN+0xNNNN).
  54. #     Column #3 is a comment containing the Unicode name or sequence
  55. #       of names. In some cases an additional comment follows the
  56. #       Unicode name(s).
  57. #
  58. #   The entries are in two sections. The first section is for pairs of
  59. #   Mac OS Devanagari code points that must be mapped in a special way.
  60. #   The second section maps individual code points.
  61. #
  62. #   Within each section, the entries are in Mac OS Devanagari code order.
  63. #
  64. #   Control character mappings are not shown in this table, following
  65. #   the conventions of the standard UTC mapping tables. However, the
  66. #   Mac OS Devanagari character set uses the standard control characters
  67. #   at 0x00-0x1F and 0x7F.
  68. #
  69. # Notes on Mac OS Devanagari:
  70. # ---------------------------
  71. #
  72. #   Mac OS Devanagari is based on IS 13194:1991 (ISCII-91), with the
  73. #   addition of several punctuation and symbol characters. However,
  74. #   Mac OS Devanagari does not support the ATR (attribute) mechanism of
  75. #   ISCII-91.
  76. #
  77. # 1. ISCII-91 features in Mac OS Devanagari include:
  78. #
  79. #  a) Overloading of nukta
  80. #
  81. #     In addition to using the nukta (0xE9) like a combining dot below,
  82. #     nukta is overloaded to function as a general character modifier.
  83. #     In this role, certain code points followed by 0xE9 are treated as
  84. #     a two-byte code point representing a character which may be
  85. #     rather different than the characters represented by either of
  86. #     the code points alone. For example, the character DEVANAGARI OM
  87. #     (U+0950) is represented in ISCII-91 as candrabindu + nukta.
  88. #
  89. #  b) Explicit halant and soft halant
  90. #
  91. #     A double halant (0xE8 + 0xE8) constitutes an "explicit halant",
  92. #     which will always appear as a halant instead of causing formation
  93. #     of a ligature or half-form consonant.
  94. #
  95. #     Halant followed by nukta (0xE8 + 0xE9) constitutes a "soft
  96. #     halant", which prevents formation of a ligature and instead
  97. #     retains the half-form of the first consonant.
  98. #
  99. #  c) Invisible consonant
  100. #
  101. #     The byte 0xD9 (called INV in ISCII-91) is an invisible consonant:
  102. #     It behaves like a consonant but has no visible appearance. It is
  103. #     intended to be used (often in combination with halant) to display
  104. #     dependent forms in isolation, such as the RA forms or consonant
  105. #     half-forms.
  106. #
  107. #  d) Extensions for Vedic, etc.
  108. #
  109. #     The byte 0xF0 (called EXT in ISCII-91) followed by any byte in
  110. #     the range 0xA1-0xEE constitutes a two-byte code point which can
  111. #     be used to represent additional characters for Vedic (or other
  112. #     extensions); 0xF0 followed by any other byte value constitutes
  113. #     malformed text. Mac OS Devanagari supports this mechanism, but
  114. #     does not currently map any of these two-byte code points to
  115. #     anything.
  116. #
  117. # 2. Mac OS Devanagari additions
  118. #
  119. #   Mac OS Devanagari adds characters using the code points
  120. #   0x80-0x8A and 0x90-0x91 (the latter are some Devanagari additions
  121. #   from Unicode).
  122. #
  123. # 3. Unused code points
  124. #   
  125. #   The following code points are currently unused, and are not shown
  126. #   here: 0x8B-0x8F, 0x92-0xA0, 0xEB-0xEF, 0xFB-0xFF. In addition,
  127. #   0xF0 is not shown here, but it has a special function as described
  128. #   above.
  129. #
  130. # Unicode mapping issues and notes:
  131. # ---------------------------------
  132. #
  133. # 1. Mapping the byte pairs
  134. #
  135. #   If one of the following byte values is encountered when mapping
  136. #   Mac OS Devanagari text - 0xA1, 0xA6, 0xA7, 0xAA, 0xDB, 0xDC, 0xDF,
  137. #   0xE8, or 0xEA - then the next byte (if there is one) should be
  138. #   examined. If the next byte is 0xE9 - or also 0xE8, if the first
  139. #   byte was 0xE8 - then the byte pair should be mapped using the
  140. #   first section of the mapping table below. Otherwise, each byte
  141. #   should be mapped using the second section of the mapping table
  142. #   below.
  143. #
  144. #   - The Unicode Standard, Version 2.0, specifies how explicit
  145. #     halant and soft halant should be represented in Unicode;
  146. #     these mappings are used below.
  147. #
  148. #   If the byte value 0xF0 is encountered when mapping Mac OS 
  149. #   Devanagari text, then the next byte should be examined. If there
  150. #   is no next byte (e.g. 0xF0 at end of buffer), the mapping
  151. #   process should indicate incomplete character. If there is a next
  152. #   byte but it is not in the range 0xA1-0xEE, the mapping process
  153. #   should indicate malformed text. Otherwise, the mapping process
  154. #   should treat the byte pair as a valid two-byte code point with no
  155. #   mapping (e.g. map it to QUESTION MARK, REPLACEMENT CHARACTER,
  156. #   etc.).
  157. #
  158. # 2. Mapping the invisible consonant
  159. #
  160. #   It has been suggested that INV in ISCII-91 should map to ZERO
  161. #   WIDTH NON-JOINER in Unicode. However, this causes problems with
  162. #   roundtrip fidelity: The ISCII-91 sequences 0xE8+0xE8 and 0xE8+0xD9
  163. #   would map to the same sequence of Unicode characters. We have
  164. #   instead mapped INV to LEFT-TO-RIGHT MARK, which avoids these
  165. #   problems.
  166. #
  167. # 3. Additional loose mappings from Unicode
  168. #
  169. #   These are not preserved in roundtrip mappings.
  170. #
  171. #   U+0958  0xB3+0xE9  # DEVANAGARI LETTER QA
  172. #   U+0959  0xB4+0xE9  # DEVANAGARI LETTER KHHA
  173. #   U+095A  0xB5+0xE9  # DEVANAGARI LETTER GHHA
  174. #   U+095B  0xBA+0xE9  # DEVANAGARI LETTER ZA
  175. #   U+095C  0xBF+0xE9  # DEVANAGARI LETTER DDDHA
  176. #   U+095D  0xC0+0xE9  # DEVANAGARI LETTER RHA
  177. #   U+095E  0xC9+0xE9  # DEVANAGARI LETTER FA
  178. #
  179. # Details of mapping changes in each version:
  180. # -------------------------------------------
  181. #
  182. ##################
  183.  
  184. # Section 1: Map the following byte pairs as indicated:
  185. # (ZWNJ means ZERO WIDTH NON-JOINER, ZWJ means ZERO WIDTH JOINER)
  186. # (Also see note about 0xF0 in comments above)
  187.  
  188. 0xA1+0xE9    0x0950    # DEVANAGARI OM
  189. 0xA6+0xE9    0x090C    # DEVANAGARI LETTER VOCALIC L
  190. 0xA7+0xE9    0x0961    # DEVANAGARI LETTER VOCALIC LL
  191. 0xAA+0xE9    0x0960    # DEVANAGARI LETTER VOCALIC RR
  192. 0xDB+0xE9    0x0962    # DEVANAGARI VOWEL SIGN VOCALIC L
  193. 0xDC+0xE9    0x0963    # DEVANAGARI VOWEL SIGN VOCALIC LL
  194. 0xDF+0xE9    0x0944    # DEVANAGARI VOWEL SIGN VOCALIC RR
  195. 0xE8+0xE8    0x094D+0x200C    # DEVANAGARI SIGN VIRAMA + ZWNJ    # explicit halant
  196. 0xE8+0xE9    0x094D+0x200D    # DEVANAGARI SIGN VIRAMA + ZWJ    # soft halant
  197. 0xEA+0xE9    0x093D    # DEVANAGARI SIGN AVAGRAHA
  198.  
  199. # Section 2: Map the remaining bytes as follows:
  200.  
  201. 0x20    0x0020    # SPACE
  202. 0x21    0x0021    # EXCLAMATION MARK
  203. 0x22    0x0022    # QUOTATION MARK
  204. 0x23    0x0023    # NUMBER SIGN
  205. 0x24    0x0024    # DOLLAR SIGN
  206. 0x25    0x0025    # PERCENT SIGN
  207. 0x26    0x0026    # AMPERSAND
  208. 0x27    0x0027    # APOSTROPHE
  209. 0x28    0x0028    # LEFT PARENTHESIS
  210. 0x29    0x0029    # RIGHT PARENTHESIS
  211. 0x2A    0x002A    # ASTERISK
  212. 0x2B    0x002B    # PLUS SIGN
  213. 0x2C    0x002C    # COMMA
  214. 0x2D    0x002D    # HYPHEN-MINUS
  215. 0x2E    0x002E    # FULL STOP
  216. 0x2F    0x002F    # SOLIDUS
  217. 0x30    0x0030    # DIGIT ZERO
  218. 0x31    0x0031    # DIGIT ONE
  219. 0x32    0x0032    # DIGIT TWO
  220. 0x33    0x0033    # DIGIT THREE
  221. 0x34    0x0034    # DIGIT FOUR
  222. 0x35    0x0035    # DIGIT FIVE
  223. 0x36    0x0036    # DIGIT SIX
  224. 0x37    0x0037    # DIGIT SEVEN
  225. 0x38    0x0038    # DIGIT EIGHT
  226. 0x39    0x0039    # DIGIT NINE
  227. 0x3A    0x003A    # COLON
  228. 0x3B    0x003B    # SEMICOLON
  229. 0x3C    0x003C    # LESS-THAN SIGN
  230. 0x3D    0x003D    # EQUALS SIGN
  231. 0x3E    0x003E    # GREATER-THAN SIGN
  232. 0x3F    0x003F    # QUESTION MARK
  233. 0x40    0x0040    # COMMERCIAL AT
  234. 0x41    0x0041    # LATIN CAPITAL LETTER A
  235. 0x42    0x0042    # LATIN CAPITAL LETTER B
  236. 0x43    0x0043    # LATIN CAPITAL LETTER C
  237. 0x44    0x0044    # LATIN CAPITAL LETTER D
  238. 0x45    0x0045    # LATIN CAPITAL LETTER E
  239. 0x46    0x0046    # LATIN CAPITAL LETTER F
  240. 0x47    0x0047    # LATIN CAPITAL LETTER G
  241. 0x48    0x0048    # LATIN CAPITAL LETTER H
  242. 0x49    0x0049    # LATIN CAPITAL LETTER I
  243. 0x4A    0x004A    # LATIN CAPITAL LETTER J
  244. 0x4B    0x004B    # LATIN CAPITAL LETTER K
  245. 0x4C    0x004C    # LATIN CAPITAL LETTER L
  246. 0x4D    0x004D    # LATIN CAPITAL LETTER M
  247. 0x4E    0x004E    # LATIN CAPITAL LETTER N
  248. 0x4F    0x004F    # LATIN CAPITAL LETTER O
  249. 0x50    0x0050    # LATIN CAPITAL LETTER P
  250. 0x51    0x0051    # LATIN CAPITAL LETTER Q
  251. 0x52    0x0052    # LATIN CAPITAL LETTER R
  252. 0x53    0x0053    # LATIN CAPITAL LETTER S
  253. 0x54    0x0054    # LATIN CAPITAL LETTER T
  254. 0x55    0x0055    # LATIN CAPITAL LETTER U
  255. 0x56    0x0056    # LATIN CAPITAL LETTER V
  256. 0x57    0x0057    # LATIN CAPITAL LETTER W
  257. 0x58    0x0058    # LATIN CAPITAL LETTER X
  258. 0x59    0x0059    # LATIN CAPITAL LETTER Y
  259. 0x5A    0x005A    # LATIN CAPITAL LETTER Z
  260. 0x5B    0x005B    # LEFT SQUARE BRACKET
  261. 0x5C    0x005C    # REVERSE SOLIDUS
  262. 0x5D    0x005D    # RIGHT SQUARE BRACKET
  263. 0x5E    0x005E    # CIRCUMFLEX ACCENT
  264. 0x5F    0x005F    # LOW LINE
  265. 0x60    0x0060    # GRAVE ACCENT
  266. 0x61    0x0061    # LATIN SMALL LETTER A
  267. 0x62    0x0062    # LATIN SMALL LETTER B
  268. 0x63    0x0063    # LATIN SMALL LETTER C
  269. 0x64    0x0064    # LATIN SMALL LETTER D
  270. 0x65    0x0065    # LATIN SMALL LETTER E
  271. 0x66    0x0066    # LATIN SMALL LETTER F
  272. 0x67    0x0067    # LATIN SMALL LETTER G
  273. 0x68    0x0068    # LATIN SMALL LETTER H
  274. 0x69    0x0069    # LATIN SMALL LETTER I
  275. 0x6A    0x006A    # LATIN SMALL LETTER J
  276. 0x6B    0x006B    # LATIN SMALL LETTER K
  277. 0x6C    0x006C    # LATIN SMALL LETTER L
  278. 0x6D    0x006D    # LATIN SMALL LETTER M
  279. 0x6E    0x006E    # LATIN SMALL LETTER N
  280. 0x6F    0x006F    # LATIN SMALL LETTER O
  281. 0x70    0x0070    # LATIN SMALL LETTER P
  282. 0x71    0x0071    # LATIN SMALL LETTER Q
  283. 0x72    0x0072    # LATIN SMALL LETTER R
  284. 0x73    0x0073    # LATIN SMALL LETTER S
  285. 0x74    0x0074    # LATIN SMALL LETTER T
  286. 0x75    0x0075    # LATIN SMALL LETTER U
  287. 0x76    0x0076    # LATIN SMALL LETTER V
  288. 0x77    0x0077    # LATIN SMALL LETTER W
  289. 0x78    0x0078    # LATIN SMALL LETTER X
  290. 0x79    0x0079    # LATIN SMALL LETTER Y
  291. 0x7A    0x007A    # LATIN SMALL LETTER Z
  292. 0x7B    0x007B    # LEFT CURLY BRACKET
  293. 0x7C    0x007C    # VERTICAL LINE
  294. 0x7D    0x007D    # RIGHT CURLY BRACKET
  295. 0x7E    0x007E    # TILDE
  296. #
  297. 0x80    0x00D7    # MULTIPLICATION SIGN
  298. 0x81    0x2212    # MINUS SIGN
  299. 0x82    0x2013    # EN DASH
  300. 0x83    0x2014    # EM DASH
  301. 0x84    0x2018    # LEFT SINGLE QUOTATION MARK
  302. 0x85    0x2019    # RIGHT SINGLE QUOTATION MARK
  303. 0x86    0x2026    # HORIZONTAL ELLIPSIS
  304. 0x87    0x2022    # BULLET
  305. 0x88    0x00A9    # COPYRIGHT SIGN
  306. 0x89    0x00AE    # REGISTERED SIGN
  307. 0x8A    0x2122    # TRADE MARK SIGN
  308. #
  309. 0x90    0x0965    # DEVANAGARI DOUBLE DANDA
  310. 0x91    0x0970    # DEVANAGARI ABBREVIATION SIGN
  311. #
  312. 0xA1    0x0901    # DEVANAGARI SIGN CANDRABINDU
  313. 0xA2    0x0902    # DEVANAGARI SIGN ANUSVARA
  314. 0xA3    0x0903    # DEVANAGARI SIGN VISARGA
  315. 0xA4    0x0905    # DEVANAGARI LETTER A
  316. 0xA5    0x0906    # DEVANAGARI LETTER AA
  317. 0xA6    0x0907    # DEVANAGARI LETTER I
  318. 0xA7    0x0908    # DEVANAGARI LETTER II
  319. 0xA8    0x0909    # DEVANAGARI LETTER U
  320. 0xA9    0x090A    # DEVANAGARI LETTER UU
  321. 0xAA    0x090B    # DEVANAGARI LETTER VOCALIC R
  322. 0xAB    0x090E    # DEVANAGARI LETTER SHORT E
  323. 0xAC    0x090F    # DEVANAGARI LETTER E
  324. 0xAD    0x0910    # DEVANAGARI LETTER AI
  325. 0xAE    0x090D    # DEVANAGARI LETTER CANDRA E
  326. 0xAF    0x0912    # DEVANAGARI LETTER SHORT O
  327. 0xB0    0x0913    # DEVANAGARI LETTER O
  328. 0xB1    0x0914    # DEVANAGARI LETTER AU
  329. 0xB2    0x0911    # DEVANAGARI LETTER CANDRA O
  330. 0xB3    0x0915    # DEVANAGARI LETTER KA
  331. 0xB4    0x0916    # DEVANAGARI LETTER KHA
  332. 0xB5    0x0917    # DEVANAGARI LETTER GA
  333. 0xB6    0x0918    # DEVANAGARI LETTER GHA
  334. 0xB7    0x0919    # DEVANAGARI LETTER NGA
  335. 0xB8    0x091A    # DEVANAGARI LETTER CA
  336. 0xB9    0x091B    # DEVANAGARI LETTER CHA
  337. 0xBA    0x091C    # DEVANAGARI LETTER JA
  338. 0xBB    0x091D    # DEVANAGARI LETTER JHA
  339. 0xBC    0x091E    # DEVANAGARI LETTER NYA
  340. 0xBD    0x091F    # DEVANAGARI LETTER TTA
  341. 0xBE    0x0920    # DEVANAGARI LETTER TTHA
  342. 0xBF    0x0921    # DEVANAGARI LETTER DDA
  343. 0xC0    0x0922    # DEVANAGARI LETTER DDHA
  344. 0xC1    0x0923    # DEVANAGARI LETTER NNA
  345. 0xC2    0x0924    # DEVANAGARI LETTER TA
  346. 0xC3    0x0925    # DEVANAGARI LETTER THA
  347. 0xC4    0x0926    # DEVANAGARI LETTER DA
  348. 0xC5    0x0927    # DEVANAGARI LETTER DHA
  349. 0xC6    0x0928    # DEVANAGARI LETTER NA
  350. 0xC7    0x0929    # DEVANAGARI LETTER NNNA
  351. 0xC8    0x092A    # DEVANAGARI LETTER PA
  352. 0xC9    0x092B    # DEVANAGARI LETTER PHA
  353. 0xCA    0x092C    # DEVANAGARI LETTER BA
  354. 0xCB    0x092D    # DEVANAGARI LETTER BHA
  355. 0xCC    0x092E    # DEVANAGARI LETTER MA
  356. 0xCD    0x092F    # DEVANAGARI LETTER YA
  357. 0xCE    0x095F    # DEVANAGARI LETTER YYA
  358. 0xCF    0x0930    # DEVANAGARI LETTER RA
  359. 0xD0    0x0931    # DEVANAGARI LETTER RRA
  360. 0xD1    0x0932    # DEVANAGARI LETTER LA
  361. 0xD2    0x0933    # DEVANAGARI LETTER LLA
  362. 0xD3    0x0934    # DEVANAGARI LETTER LLLA
  363. 0xD4    0x0935    # DEVANAGARI LETTER VA
  364. 0xD5    0x0936    # DEVANAGARI LETTER SHA
  365. 0xD6    0x0937    # DEVANAGARI LETTER SSA
  366. 0xD7    0x0938    # DEVANAGARI LETTER SA
  367. 0xD8    0x0939    # DEVANAGARI LETTER HA
  368. 0xD9    0x200E    # LEFT-TO-RIGHT MARK    # invisible consonant
  369. 0xDA    0x093E    # DEVANAGARI VOWEL SIGN AA
  370. 0xDB    0x093F    # DEVANAGARI VOWEL SIGN I
  371. 0xDC    0x0940    # DEVANAGARI VOWEL SIGN II
  372. 0xDD    0x0941    # DEVANAGARI VOWEL SIGN U
  373. 0xDE    0x0942    # DEVANAGARI VOWEL SIGN UU
  374. 0xDF    0x0943    # DEVANAGARI VOWEL SIGN VOCALIC R
  375. 0xE0    0x0946    # DEVANAGARI VOWEL SIGN SHORT E
  376. 0xE1    0x0947    # DEVANAGARI VOWEL SIGN E
  377. 0xE2    0x0948    # DEVANAGARI VOWEL SIGN AI
  378. 0xE3    0x0945    # DEVANAGARI VOWEL SIGN CANDRA E
  379. 0xE4    0x094A    # DEVANAGARI VOWEL SIGN SHORT O
  380. 0xE5    0x094B    # DEVANAGARI VOWEL SIGN O
  381. 0xE6    0x094C    # DEVANAGARI VOWEL SIGN AU
  382. 0xE7    0x0949    # DEVANAGARI VOWEL SIGN CANDRA O
  383. 0xE8    0x094D    # DEVANAGARI SIGN VIRAMA    # halant
  384. 0xE9    0x093C    # DEVANAGARI SIGN NUKTA
  385. 0xEA    0x0964    # DEVANAGARI DANDA
  386. #
  387. 0xF1    0x0966    # DEVANAGARI DIGIT ZERO
  388. 0xF2    0x0967    # DEVANAGARI DIGIT ONE
  389. 0xF3    0x0968    # DEVANAGARI DIGIT TWO
  390. 0xF4    0x0969    # DEVANAGARI DIGIT THREE
  391. 0xF5    0x096A    # DEVANAGARI DIGIT FOUR
  392. 0xF6    0x096B    # DEVANAGARI DIGIT FIVE
  393. 0xF7    0x096C    # DEVANAGARI DIGIT SIX
  394. 0xF8    0x096D    # DEVANAGARI DIGIT SEVEN
  395. 0xF9    0x096E    # DEVANAGARI DIGIT EIGHT
  396. 0xFA    0x096F    # DEVANAGARI DIGIT NINE
  397.